package org.csmzxy.xg2333;

public class example02 {
    public static void main(String[] args) {
        int n = 20; // 计算前20项
        long sum = calculateFibonacciSum(n);
        System.out.println("斐波那契数列前 " + n + " 项之和为: " + sum);
    }
    // 计算斐波那契数列前n项之和
    public static long calculateFibonacciSum(int n) {
        if (n <= 0) {
            return 0; // 如果n小于等于0，返回0
        }
        long[] fib = new long[n + 1]; // 用于存储斐波那契数列的数组
        fib[0] = 0; // 第0项（不存在，设为0）
        fib[1] = 1; // 第1项
        fib[2] = 1; // 第2项
        long sum = fib[1] + fib[2]; // 初始化前两项之和
                // 计算从第3项到第n项
        for (int i = 3; i <= n; i++) {
            fib[i] = fib[i - 1] + fib[i - 2]; // 当前项等于前两项之和
            sum += fib[i]; // 累加到总和中
        }

        return sum;
    }
}

